package day230517;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * @date 2023/5/17 21:17
 * 查找兄弟单词
 */
public class Main02 {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNextLine()) {
            String[] input = scan.nextLine().split(" "); // 获取输入
            int n = Integer.parseInt(input[0]); // 字典单词的个数
            String[] words = new String[n]; // 用于存储字典单词
            for (int i = 0; i < words.length; i++) {
                words[i] = input[i+1];
            }
            String findWord = input[n+1]; // 要查找的单词
            int k = Integer.parseInt(input[n+2]); // 要查找第 k 个兄弟单词
            // 先将字典进行字典序排序
            Arrays.sort(words);
            // 查找兄弟单词
            String res = ""; // 记录兄弟单词的结果
            int count = 0; // 用于计数, 找到第 k 个兄弟单词
            for (String word : words) {
                if (isBrother(word.toCharArray(), findWord.toCharArray())) {
                    ++count;
                    if (count == k) {
                        res = word;
                    }
                }
            }
            // 打印结果
            System.out.println(count);
            if (count >= k) {
                System.out.println(res);
            }
        }
        scan.close();
    }

    // 判断两个单词是否为兄弟单词
    private static boolean isBrother(char[] word1, char[] word2) {
        if (word1.length != word2.length) {  // 如果长度不同, 则一定不是兄弟单词
            return  false;
        }
        String str1 = new String(word1);
        String str2 = new String(word2);
        if (str1.equals(str2)) { // 如果两个单词相同, 则一定不是兄弟单词
            return false;
        }
        // 如果是兄弟单词, 则排序后相同
        Arrays.sort(word1);
        Arrays.sort(word2);
        str1 = new String(word1);
        str2 = new String(word2);
        // 返回结果
        return str1.equals(str2);
    }
}
